﻿using System;

namespace WolframAlphaSharp
{
    /// <summary>
    /// The supported formats that can be output by the API.
    /// </summary>
    /// <remarks>
    /// This is a flags enum, so that you can specify
    /// two or more output formats if you wish.
    /// </remarks>
    [Flags]
    public enum OutputFormat
    {
        /// <summary>
        /// None.
        /// </summary>
        None = 0,

        /// <summary>
        /// Plain text.
        /// </summary>
        PlainText = 1,

        /// <summary>
        /// HTML.
        /// </summary>
        Html = 2,

        /// <summary>
        /// Images.
        /// </summary>
        Image = 4,

        /// <summary>
        /// Sound.
        /// </summary>
        Sound = 8,

        /// <summary>
        /// Mathematica Cells.
        /// </summary>
        Cell = 16,

        /// <summary>
        /// Mathematica Input.
        /// </summary>
        MInput = 32,

        /// <summary>
        /// Mathematica Output.
        /// </summary>
        MOutput = 64,

        /// <summary>
        /// MathML.
        /// </summary>
        MathML = 128,

        /// <summary>
        /// Image map.
        /// </summary>
        ImageMap = 256,

        /// <summary>
        /// Sound in WAV format.
        /// </summary>
        Wav = 512,

        /// <summary>
        /// The default output formats of <see cref="PlainText"/> and <see cref="Image"/>.
        /// </summary>
        Default = PlainText | Image
    }
}